# logger_config.py
# 统一日志配置（控制台 + 滚动文件）
import logging
from logging.handlers import RotatingFileHandler
import os

BASE_DIR = os.path.dirname(__file__)
LOG_DIR = os.path.join(BASE_DIR, "logs")
os.makedirs(LOG_DIR, exist_ok=True)

LOG_FILE = os.path.join(LOG_DIR, "service.log")

formatter = logging.Formatter(
    "[%(asctime)s] [%(levelname)s] %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S"
)

logger = logging.getLogger("script_service")
logger.setLevel(logging.INFO)

# 文件滚动 handler（UTF-8）
file_handler = RotatingFileHandler(LOG_FILE, maxBytes=10 * 1024 * 1024, backupCount=5, encoding="utf-8")
file_handler.setFormatter(formatter)

# 控制台 handler
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)

# 避免重复添加 handler（uvicorn reload 时）
if not logger.handlers:
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
